home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d7
/
docsdsz.arc
/
PRINTER.DOC
< prev
next >
Wrap
Text File
|
1990-02-04
|
101KB
|
2,507 lines
DSZ.COM - ZMODEM-90(TM), True YMODEM(TM), XMODEM File Transfer Program
Chuck Forsberg - Omen Technology Inc
───────────
DESCRIPTION:
───────────
DSZ is a "protocol driver" that uses the ZMODEM-90(TM), True YMODEM(TM), or
XMODEM protocol to transfer files over a serial port with a variety of
programs.
ZMODEM Transfers feature 32 bit CRC, advanced file management, and Crash
Recovery, ZMODEM Crash Recovery can be used to complete interrupted file
transfers started with any protocol.
DSZ has two main commands for ZMODEM transfers: "sz" sends file(s), and "rz"
receives them.
When calling bulletin boards to download files with ZMODEM you can avoid the
bother of starting DSZ for each transfer by calling DSZ first, before asking
the BBS for the download.
dsz t
The "t" command allows you to keyboard the file request directly to the BBS.
(The "t" stands for "terminal emulation".) Just give the "dsz t" command from
DOS or your comms program's DOS GATEWAY. DSZ's ZMODEM AutoDownload then
receives the file automatically, using the filename provided by the BBS,
without any wasted keystrokes or delay. Try it, you'll like it! (The "t"
command is described below.)
YMODEM downloads are almost as easy. Use the "t" command as shown above, and
hit the F3 key after telling the board to download a file with YMODEM.
ZMODEM and True YMODEM(TM) transfers preserve exact file length and
modification time.
DSZ supports XMODEM-1k (XMODEM with 1024 byte blocks, sometimes mislabeled as
ymodem) and CRC-16 with the sx -k and rc commands.
DSZ is derived from Omen Technology's "Professional-YAM" high reliability
communications tools (also known as PowerCom(TM)) and Omen Technology's ZCOMM
User Supported Communications Software. DSZ supports a subset of Pro-YAM's
file transfer related commands. This documentation makes extensive references
to contemporary editions of the Pro-YAM or ZCOMM manual, and is incomplete
without it. (Registered copies include an alternate, copyrighted file.)
DSZ is usually called from a communications or bulletin board program.
DSZ uses its own modem I/O. The original interrupt vector, UART parity, and
interrupt configuration are restored on exit. The original state of the 8259
interrupt mask bit for this vector is also restored on exit.
1
DSZ uses DOS standard output (stdout) for messages. DSZ never writes directly
to the screen. DSZ expects its standard output to point to the console, a
logging file, or NUL, but never the modem port. If dsz's standard output is
redirected to the modem (as with ProComm's Host mode DOS shell), the
combination will lock up the computer. When necessary, dsz's standard output
can be redirected back to the console device with the CON command.
Users of pcAnywhere must use dsz's A command to disable pcAnywhere host mode
during file transfers.
DSZ exits with 0 status for successful transfers, or the value of the Q
parameter (default 1) if a file transfer failed, or if no files were
transferred. Many languages and "door" programs do not return this
information to the calling program. Some languages and "door" programs freak
out (hang) on certain non-zero exit values.
A batch file that calls DSZ directly may be used to detect the DSZ exit status
with the DOS "errorlevel" construct. Please refer to the Q numeric parameter
below for more information.
DSZ's log file entries may also be examined to determine the success or
failure of a file transfer.
────────────────────────
DSZ.COM SETUP PARAMETERS:
────────────────────────
Except as noted, all commands and options must be typed in lower case.
DO NOT USE UPPER CASE!!
Optional commands or arguments are shown in square brackets [].
When used (in any combination), the A, CON, port, speed, handshake, estimate,
and d commands must be used in exactly this order:
DSZ.COM [A] [CON] [port N] [speed S] [handshake] [D] [d] [pxN] file
transfer
command
[A]
Suspend pcAnywhere operation during file transfers. The A command is
used to avoid lockups caused by pcAnywhere host mode. This command
should be given to the program running under pcAnywhere host mode.
EXAMPLE: C>dsz A sz *.foo Sends files from a pcAnywhere hosted machine
to you.
Fm: Al de la Torre
1. sending from host to remote
2
type: "dsz A sz filename.ext" ENTER
shell to dos on remote machine (ctrl-Rshift)
type: "dsz A rz" ENTER
2. sending from remote to host
type: "dsz A rz" ENTER
shell to dos on remote machine (ctrl-Rshift)
type: "dsz A sz filename.ext" ENTER
[CON]
Redirect message output to the DOS "CON" (console) device, overriding
any previous redirections. This is necessary to avoid lockups caused by
ProComm host mode. Most programs do not require this hack. This
command is unique to DSZ.
[port N]
select port N (n = 1,2,3,4,5,6,7,8, 10,11,12,13,14,15,16,17,18) Default
is port 1 (COM1) or read from the DSZPORT dos environment variable.
COM11 to COM18 refer to the COM1 to COM8 ports on the PS/2.
DSZ's COM3 uses 3E8 and IRQ4. DSZ's COM4 uses 2E8 and IRQ3.
DSZ's COM7 uses 3E8 and IRQ5. DSZ's COM8 uses 2E8 and IRQ5.
If you wish to use COM3 or COM4 and your computer is not wired according
to one of these choices, you MUST use the "portx" command to specify
base address and interrupt vector.
EXAMPLE: to use COM2:
dsz port 2 rz
In multitasking operation, accessing a port used by another running
program will hang the machine.
[portx base,irq]
To select an arbitrary port address and interrupt vector, the
portx command must be used instead of the port command.
EXAMPLE: dsz portx 3e8,4 speed 2400 rz
[speed S]
Set the specified speed. This command is rarely needed because DSZ
reads the port's current speed by default.
DSZ supports a maximum speed of 38400. Please study all the
chapters of this document when using speeds above 2400 bps.
3
[handshake (ON) (BOTH) (SLOW)]
Enable one of several choices of handshake (ie Flow Control).
ON enables CTS/RTS Hardware Flow Control; BOTH enables CTS/RTS
Hardware Flow Control *And* XOFF/XON software Flow Control; SLOW
has been added to disable the RTS signal to the modem while
writing to disk, even if the interrupt buffer is not chock full of
bytes. This should help systems with excessive interrupt latency on
disk writes. (see Got Zpros section towards end of manual)
In DSZ the "handshake"
command may be abbreviated to "ha".
[estimate (length) (speed)]
Use the specified length and optional specified
effective transfer speed for the next receive file to be created. This
command must come *after* any port, speed, or handshake commands.
The following makes DSZ calculate file transfer times on the basis of
290 character per second aggregate transfer rate:
EXAMPLE: dsz port 2 speed 9600 estimate 0 2900 rz
EXAMPLE: dsz port 2 speed 9600 estimate 0 2900 sz bimama.zip
[D]
Disables the modem (drops Data Terminal Ready, DTR) if carrier is lost.
This may be used to prevent spurious events (phone ringing) from
interfering with the calling bulletin board's recovery from carrier
loss.
[d]
Disables carrier dropout monitoring, for modems that do not properly
drive the "Carrier Detect" input on the PC. If you see a No Carrier
Detect message, you need to give the d command. Before using the d
command, make sure you have the proper port selected!!!
[LARG] Convert ARG to lower case, then parse arg.
[pxN]
Set a numeric parameter x to N. These parameters are mostly a subset of
the Pro-YAM/ZCOMM numeric parameters, and are listed below. They assume
their defaults each time DSZ is called. Without an argument, p displays
the numeric parameters and their values.
EXAMPLE: C>dsz p
z pxN Set zmodem numeric parameter x to N. These parameters correspond
to the Pro-YAM or ZCOMM "zmodem" parameters and rarely need changing.
4
These parameters assume their defaults each time DSZ is called. Without
an argument, z p displays the zmodem numeric parameters and their
values.
[restrict]
Restrict pathnames to the current disk and directory tree, and
disallow overwriting of existing files. When DSZ is restricted, it will
refuse to transfer files containing the string autoexec.bat and
command.com in upper or lower case. This provides some defense from
malicious uploaded files.
[t] (-T) (-8g) Talk with ZMODEM AutoDownload.
DSZ's ZMODEM AutoDownload(Tm) detects the start of a ZMODEM file
download and accepts the file(s) without operator intervention.
The optional -T forces DSZ to exit after it has recognized a ZMODEM
AutoDownload(Tm) request.
The optional -8g (available on registered copies only) enables reception
of "BBS (ANSI) graphics" displays. (A video device driver such as
ANSI.SYS must be loaded to support some types of graphics.) A small
subset of ZCOMM/Pro-YAM term function subcommands are recognized.
Keyboard F1 or ALT-X to exit. F3 receives file(s) with True YMODEM(TM),
ALT-P toggles parity between the 8n default and 8g (enables ANSI
"graphics"). ALT-H toggles two local echo ("Half Duplex") modes; the
second displays a newline (CR/LF) when Enter is keyboarded. Keyboarded
ASCII characters are sent to the modem. ALT-B sends a break.
Characters from the modem print on the screen. A device driver such as
ANSI.SYS may be used to recognize escape sequences.
[o] Turn off Data Terminal Ready (DTR), terminating ("offing") the
connection if the modem responds to DTR. Useful with the "t" command to
disconnect afterwards.
EXAMPLE: dsz t o
────────────────────────────────────────
NUMERIC PARAMETERS: THE pxN COMMAND
────────────────────────────────────────
DSZ uses the following main numeric parameters, settable with the pxN command.
EXAMPLE: dsz pQ0
B Set the size of buffer used for disk reads and writes. The default is
1024, 4096 maximum. (16384 max on DSZ.EXE) If your copy of DSZ is running
5
on a floppy disk system or a very slow turkey hard disk, a larger value
may give better results. Too large a value may exhaust memory, induce
receiver timeouts, cause disconnects(!), or generate spurious CRC errors.
If performance logging doesn't work, this parameter is too big.
EXAMPLE: C>dsz pB4096 sz A:floppy.fil
Setting the buffer size may lock out the performance log, DSZFILES, and/or
indirect pathname list in the "tiny model" DSZ flavor.
IF YOU AREN'T BLOODY SURE YOU NEED A BIGGER BUFFER, DON'T USE ONE.
O This parameter controls XMODEM OverThruster(TM).
CompuServe XMODEM Negative numbers control the number of bytes added
to the window on XMODEM downloads from the CompuServe Information
Service. Larger numbers increase throughput, but cause improperly
interfaced MNP modems on CIS nodes to drop characters under stress,
disrupting the file transfer.
EXAMPLE: dsz pO-512 ro file1.ext
Other XMODEM Positive numbers up to a system dependent value less than
the protocol block size increase throughput. Larger values induce
timeouts and/or retransmitted blocks. The optimum value must be
determined by experiment. 60 usually give best results with MNP
modems at 2400 bps. The optimum value varies depending on the remote
computer, modem(s), system traffic, and the network node.
EXAMPLE: dsz pO60 ro file1.ext
P After a "speed" command, giving a p command (display parameters), the P
parameter value will indicate the type of serial I/O UART chip detected.
DSZ automatically detects and enables the FIFO buffer on the NS16550A and
Intel 82510 chips.
EXAMPLE: dsz port 1 speed 19200 p
0 Indicates a standard 8250 or 16450 UART with no special features.
1 Indicates an NS16550A with 16 deep receive buffering. This is the
preferred chip.
2 Indicates an Intel 82510 with 3 deep receive buffering.
The sequence "port 1 pP1 speed 19200" bypasses DSZ's verification checks
normally performed on the FIFO configuration and may allow a defective
FIFO on certain chips to be used. This incantation is not required for
the NS16550A.
Q Error code returned to DOS (default 1). (Success always returns 0.) Some
programs toss cookies when confronted with certain exit codes.
6
EXAMPLE: C>dsz pQ-1 sz foo.bar
DSZ reports an error if no files have been transferred, even if the
command used wasn't supposed to transfer any file(s).
S Timeout in seconds (default 15) waiting for restraint release (XON and/or
handshake).
W Wait for Enter key before exiting after an error. Effective only on
registered copies. Useful when calling DSZ from DESQview, allows the
window to close unless there is an error message that should remain
visible.
EXAMPLE: C>dsz pW1 sz foo.bar
a Calibrates certain protocol timeouts used with XMODEM and YMODEM transfers
(Cybernetic Data Recovery(TM)). This parameter does not affect ZMODEM
transfers.
The a numeric parameter is automatically set to 2000 for a 4.77 mHz PC or
XT, 4000 for a PS2/30, 6000 for an 8 mHz 1ws AT, and 12000 for a PS2/80.
If your computer has a speedup card or otherwise runs unusually fast (or
slow!) for its type, you may set the a numeric parameter to a value that
reflects its speed.
EXAMPLE: dsz port 2 pa4000 rb
NOTE: Setting this parameter does not suppress the "Unknown Machine Type"
message which is displayed before the command line is scanned.
d A non zero value (the default) causes incoming files received with ZMODEM
and full YMODEM transfers to have their Date set to that sent in the file
header. ZMODEM's file management features depend on the transmission of
each file's modification date. Files will have the same creation date,
even if the two machines are in different time zones. When transferring
files to/from a Unix system, creation dates are interpreted according to
GMT or Universal Coordinated Time. File dating may be disabled with a pd0
command.
NOTE: Backdating file creation times may confuse some backup programs.
v Verbose level (debugging output) Negative values inhibit some routine
messages. Setting v to 1 or greater causes serialized copies to ring the
bell when a transfer is done.
z Timezone in minutes behind GMT, used for ZMODEM and True YMODEM file
transfers to coordinate the actual date of the file with computers in
other time zones. Effective on registered copies. PDT or MST corresponds
to 420. This may be preset with the ZONE DOS environment variable.
7
──────────────────────
FILE TRANSFER COMMANDS:
──────────────────────
DESCRIPTIONS OF PROTOCOLS SUPPORTED BY DSZ.COM
XMODEM The Ward Christensen file transfer protocol uses 128 byte
packets, one byte control messages, and a one byte arithmetic
checksum.
XMODEM/CRC A synonym for the enhanced Ward Christensen XMODEM protocol
using a Cyclic Redundancy Check (CRC-16). Newer programs support
CRC-16 for better data integrity, but reliability is still
compromized by one byte control messages.
XMODEM-1k XMODEM protocol with 1024 byte data packets, CRC-16, and one
byte control messages, sometimes incorrectly called ymodem.
YMODEM is a batch file transfer protocol with pathname, date,
file length and other file data in block 0, CRC-16 default, and
optional 1024 byte packets. Many programs claiming to support
YMODEM actually use XMODEM with 1024 byte blocks; use ZCOMM's sx
-k and rx XMODEM commands with these mutants.
ZMODEM An advanced public domain file transfer protocol with
simplified human interface, crash recovery, high speed streaming,
sensitive 32 bit CRC, command download, security features, and
important file management functions.
file transfers with traditional protocols.
ZMODEM
+ ZMODEM data transfers are protected by the Federal Standard 32 bit
CRC to assure reliable transfers. This 32 bit CRC gives an
undetected error rate five orders of magnitude better than XMODEM's
16 bit CRC, and more than a billion times better than checksum
XMODEM. ZMODEM uses 16 bit CRC for file transfers with programs
that do not support 32 bit CRC.
+ Most important, all ZMODEM protocol transactions are protected by
CRC. Some competing protocols advertising 16 or 32 bit CRC fail
under stress because transactions use single characters not
protected by CRC.
ZMODEM supports Crash Recovery and advanced file management. If
you've ever been disconnected when a huge file transfer was almost
finished, you'll appreciate resuming/recovering the file transfer with
the ZMODEM r option. You can use the n option to transfer only those
files that have changed since the last time they were transferred.
8
With the p option, you can unconditionally protect files that already
exist on the destination system. To update only the files you already
have while skipping the rest, use the Yn option.
To send a file with ZMODEM, the command sz file1 can be given from
either the main command prompt, or from a secondary command prompt
obtained with ALT-2. Multiple files and wild cards may be used.
EXAMPLE: sz file1 file2 *.lst
If Z mode has been enabled (the default), ZCOMM's term function will
detect a ZMODEM transmission and receive the file(s) automatically,
after a security check. Otherwise, the rz command may be given from a
command prompt.
Please refer to the sz and zcommand commands for examples.
──────> NEW-NEW-NEW!!! with the 1-22-90 edition of DSZ you get:
MobyTurbo(Tm)
MobyTurbo optimizes throughput on ZIP, ARC, and similar files over
paths that support YMODEM-g (or would except for random errors).
MobyTurbo cannot be used with most types of software flow control (or
"handshake both").
Activate MobyTurbo with the -m option to one or more of: sz, rz
LOCK OUT MobyTurbo with the -M option. -M is effective until the next
"call" command.
TRUE YMODEM
Developed in 1981, YMODEM extensions to XMODEM are finding their way
into many communications programs. Rb and sb programs are available
for Unix and VAX/VMS. With Omen's Enhanced Data Recovery(TM), YMODEM
gives excellent efficiency, integrity, and good robustness.
True YMODEM transfers one or more files in a batch without alteration
or added garbage characters. True YMODEM preserves the file date
across multiple time zones. ZCOMM and the Unix(TM) rb and sb programs
and ZCOMM preserve the file modification date.[2]
The sb k option (1024 byte blocks) may be used to enhance throughput,
especially when using timesharing systems, satellite links, or packet
networks that can support the longer blocks.
EXAMPLE: sb -k *.c *.h sends all .c and .h files in the current
directory with 1024 byte blocks.[3]
YMODEM Batch files can be received with the rb or F3 commands.
9
YMODEM Batch file transfers with Unix and VMS systems are discussed
later in this chapter. Many programs claiming to support YMODEM
actually use XMODEM with 1024 byte blocks; use ZCOMM's sx -k and rx
XMODEM commands with these imposters.
XMODEM-1k
The XMODEM-1k protocol transfers one file per command with 1024 byte
blocks and a nominal 16 bit CRC. The file name must be entered for
both the sender and the receiver. Programs lacking ZCOMM's Cybernetic
Data Recovery(TM) logic are less likely to transfer data accurately
under marginal conditions. XMODEM's use of every possible 8 bit code
limit its effectiveness in many applications.
The end of the file may be padded by up to 127 or 1023[4] garbage
characters.
To send a file: sx -k file1
2. Controlled by the d and z numeric parameters
3. ZCOMM switches to 128 byte blocks at the end of a file when the
length warrants.
4. Some programs (including ZCOMM) limit this padding to 127 bytes.
To receive a file: rc file1
XMODEM/CRC
The XMODEM/CRC protocol transfers one file per command. The file name
must be entered for both the sender and the receiver. Programs
lacking ZCOMM's Cybernetic Data Recovery(TM) logic are less likely to
transfer data under marginal conditions. XMODEM-CRC's short data
blocks and use of every possible 8 bit code limit its effectiveness in
many applications.
The end of the file may be padded by up to 127 garbage characters.
To send a file: sx file1
To receive a file: rc file1
10
XMODEM
The original MODEM protocol, developed by Ward Christensen, is
supported by a large and growing number of programs operating on a
variety of micros and minis. The base level XMODEM protocol gives
good results when used over low error rate direct telephone
connections. XMODEM's short data blocks and use of every possible 8
bit code limit its effectiveness in many applications.
File transfers with this protocol add up to 127 garbage characters to
transferred files. The XMODEM protocol can transfer one file per
command. The file name must be entered at both the sender and the
receiver.
To send a file with plain XMODEM: sx file1
To receive a file with XMODEM: rx file1
XMODEM with OverThruster
XMODEM file downloading from networks and timesharing systems is
slowed by short blocks and long response times. With some systems,
one can speed up downloads by using the ro command to receive the
file. Because OverThruster defeats error recovery, a line hit will
usually abort a download. With nearly error free connections, one can
save enough time from the increased throughput to make up for failed
transfers. OverThruster may be used with X.PC or MNP error correcting
link level protocols.
EXAMPLE: ro file1
Clink/SEAlink Batch
When transferring files with the SEA CLINK 1.13 or compatible
programs, DSZ's rb and sb commands recognize SEAlink's modified
Telink protocol. The rb command allows a transmitting SEAlink program
to use sliding windows. Telink time zone and file name considerations
apply to SEAlink. In addition, because SEAlink uses all 256 of the
possible 8 bit codes for both data transfer and protocol management,
some modems and networks that operate with XMODEM will not accomodate
SEAlink. As with the MODEM7 and Clink protocols mentioned above, the
SEAlink protocol is included for convenience in situations where the
YMODEM and ZMODEM protocols are not implemented.
EXAMPLE: zmodem pZ120; sb file1.ext *.baz Sends the specified files
to a SEAlink program with a 2 hour time zone adjustment.
EXAMPLE: rb -z60 Receives one or more files from a SEAlink program
with a 60 minute time zone adjustment.
11
────────────────────────────────────────────────
ADDITIONAL DESCRIPTIONS OF FILE TRANSFER COMMANDS:
────────────────────────────────────────────────
rb [-options] Receives with options 1 or more files using YMODEM
batch protocol. The rb command also receives files sent with
Clink/SEAlink protocol.
The pathname and length of each file are transmitted in batch mode.
If a file is received in error (retries exhausted, etc.), the batch
transfer will terminate. If privileges are restricted, a file
received in error will be unlinked (erased).
EXAMPLE: rb -y
Many programs claiming to support YMODEM actually use XMODEM with
1024 byte blocks; use ZCOMM's sx -k and rx XMODEM commands with
these imposters.
SEE ALSO: YMODEM Batch protocol, Chapter 11.
rb [-options] [dir] [file ...] Receives with options 1 or more files
using YMODEM batch protocol. An optional disk and/or directory dir
may be specified. The optional supplied pathnames file ... are
used in place of pathnames normally provided by the sending program.
If the sending program attempts to send more files than the number
of names supplied to the rb command, the transfer is aborted.
rc [-options] file Receives with options a single file using the
Christensen XMODEM protocol, 128 or 1024 byte blocks, and CRC-16
instead of an 8 bit checksum. ZCOMM signals the sending program
that CRC-16 is to be used. After four errors while attempting to
receive the first sector, ZCOMM will cancel the CRC-16 option and
reverts to checksum operation.
The probability of an undetected transmission error is much less if
CRC-16 is used in place of the default 8 bit arithmetic checksum.
Omen Technology Inc Recommends use of the 16 bit CRC to maintain
data integrity at professional levels.
CRC-16 is not the default because most IBM bulletin boards and
commercial modem programs only support the 8 bit checksum. Chapter
17 describes the available options to the rc command. If privileges
are restricted, a file received in error will be deleted.
ro [-options] file Receives with options a single file using non-
standard XMODEM-CRC protocol logic. OverThruster(TM) speeds file
downloads at the expense of error recovery. OverThruster operation
is controlled by the O numeric parameter (q.v.). As fans of
Buckaroo Bonzai know, the OverThruster is not universally
applicable. A transmission error will almost always terminate an
OverThruster file download.
12
If Restricted, a file received in error will be unlinked (erased).
EXAMPLE: ro foo.com
SEE ALSO: O numeric parameter
rx [-options] file Receives with options a single file using the
Christensen XMODEM protocol. Chapter 17 describes the available
options. If restricted, a file received in error will be unlinked
(erased).
EXAMPLE: rx foo.com
rz [-options] Receives with options 1 or more files using ZMODEM
protocol. Each file's pathname is obtained from the sending
program. The +, a, b, n, N, r, and y options are accepted from the
sending program, subject to restriced privileges. If the +, b, n,
N, r, or y option is specified to the receiver, it overrides any
contrary options specified to the sender.
Only one of the a, b, or r options may be specified.
Only one of the +, n, N, or y options may be specified.
If a file is received in error (retries exhausted, etc.), the batch
transfer will terminate. If privileges are restricted, a file
received in error will be unlinked (erased).
EXAMPLE: rz -y
rz [-options] [dir] [file ...] Receives with options 1 or more files
using YMODEM batch protocol. An optional disk and/or directory dir
may be specified. The optional supplied pathnames file ... are
used in place of pathnames normally provided by the sending program.
If the sending program attempts to send more files than the number
of names supplied to the rz command, the transfer is aborted. To
allow use of the rz command, Z mode (ZMODEM autodownload) should be
turned off with a dis -Z command.
sb [-options] pathspec Send the files specified in pathspec using the
YMODEM Batch Protocol. The pathname, length, and modification
time of each file are transmitted. Files which cannot be opened are
skipped. An empty pathspec sends all files in the current
directory. A directory name expands to all regular files in that
directory.
If an error aborts a file transmission (retries exhausted, etc.),
batch transfers terminate. The sb command will send files with
Clink/SEAlink protocol if the receiving program requests Clink.
EXAMPLE: sb -k *.com sends *.com using 1024 byte packets.
13
NOTE The receiver must be commanded to receive the files with an rb
or rz command.
sx [-options] file Send a single file using the Ward Christensen
XMODEM or XMODEM/CRC protocol. The receiving program may request
use of a 16 bit CRC, which is more accurate than the default
checksum. DOS files sent this way will have Control-Z (CPMEOF)
garbage characters appended to make the file length a multiple of
the packet size.
EXAMPLE: sx foo.com
EXAMPLE: sx -k foo.com (1024 byte blocks)
NOTE: The receiver must be commanded to receive the file with an rx
filename or rc filename command.
sz [-options] [PREFIX=p | ONAME=x] pathspec Send the files specified
in pathspec using ZMODEM Batch Protocol. The +, a, b, n, N, r, and
y options are sent to the receiving program. Only one of the a, b,
or r options may be specified. Only one of the +, n, N, or y
options may be specified. The pathname, length, and modification
time of each file are transmitted. Files which cannot be opened are
skipped. An empty pathspec sends all files in the current
directory. A directory name expands to all regular files in that
directory.
If ONAME=x is given after the options (if any) and before the file
name(s), x will be used as the COMPLETE destination pathname instead
of each file's actual pathname.
Examples:
EXAMPLE: sz -y ONAME=B:/spiked/secret /soviet/sdi/newlaser.doc
results in the destination file secret on drive B: in the /spiked
directory. (Destination directories must exist and be writable).
If instead PREFIX=p is given after the options (if any) and before
the file name(s), p will bew added to the destination pathname(s) as
a prefix.
EXAMPLE: sz -y PREFIX=C:/FOO.BAZ/ /biff/bam/aardvark.wak
results in the destination file "C:/FOO.BAZ/aardvark.wak" (the
destination directories must exist and be writable).
EXAMPLE: sz *.com Sends all files with a .com extension.
EXAMPLE: sz -r ??log Crash Recovery sends only the new data if the
receiver has incomplete versions of these files.
EXAMPLE: sz -fn src/*.c src/*.h maildir
14
sends only the newer source files in the src subdirectory, and all
new files in the maildir subdirectory.
EXAMPLE: zcommand "sz -fn /bin /wp"
commands a remote ZCOMM system in Host Operation (unrestricted) to
send all new files in the /bin and /wp directories.
EXAMPLE: sz -Yn *.c sends only newer versions of files that
already exist at the destination.
szb [-options] [PREFIX=p | ONAME=x] pathspec As above, but "falls
back" to YMODEM if the receiver cannot receive with ZMODEM protocol.
──────────────────────────────────
EXAMPLES OF FILE TRANSFER COMMANDS:
──────────────────────────────────
RECEIVE (DOWNLOAD) COMMANDS:
---------------------------
┌─ Transfer Command ┌──── Transfer Options
│ │
rz [-abeEmMnpPrt+YZy] [dir] [file ...] (ZMODEM-90 receive)
rz [-abenprt+Yy] [dir] [file ...] (ZMODEM receive)
rb [-abt+y] [dir] [file ...] (YMODEM receive)
rb -g [-abt+y] [dir] [file ...] (YMODEM-g receive)
rc [-abt+y] file1 (XMODEM/CRC receive)
ro [-abt+y] file1 (XMODEM OverThruster receive)
rx [-abt+y] file1 (XMODEM receive)
rx -g [-abt+y] file1 (Qmodem-G receive)
**** Download directory specification and -g ignored w/o registration****
TRANSMIT (UPLOAD) COMMANDS:
--------------------------
sz [-abefnprtFYQS+yZ] [-w[N]] [PREFIX=p | ONAME=n] file (ZMODEM send)
sz [-abeEfmMnpPrtFYQS+yZ] [-w[N]] [PREFIX=p | ONAME=n] file (ZMODEM-90)
Pathnames are separated by spaces. Wildcards are OK.
15
sb [-ft] [PREFIX=p | ONAME=n] file (YMODEM or YMODEM-g send)
sb -k [-ft] [PREFIX=p | ONAME=n] file (YMODEM-1k or YMODEM-g send)
sx [-t] file1 (XMODEM, XMODEM/CRC,Qmodem-G send)
sx -k [-t] file1 (XMODEM-1k send)
Send files may be specified indirectly:
dsz sz @C:files.lst
sends the files in C:files.lst. This provides another means of bypassing the
DOS command line limit. The first letter must be "@" and the third letter
must be ":" to distinguish this from an ordinary pathname. Pathnames in the
indirection file may be separated by any combination of space(s), tab(s), CR
and/or LF. No spaces may appear inside a pathname; "FOO .BAR" won't work.
─────────────────────
FILE TRANSFER OPTIONS:
─────────────────────
Options modify the way the protocol file transfer commands send and
receive files. They are reset before each command line.
The a and b options are mutually exclusive. With ZMODEM, a b option
given to the sender or receiver will override any a option.
The +, r, N, n, p, and y options are mutually exclusive. The Y option
may be followed by the +, r, n, or N option. Specifiying these
options to the receiver overrides the ZMODEM sender's specification of
these options.
+ When receiving to a file already on disk, append the new data to
the old file (if one exists). This option is not allowed if DSZ.COM
is Restricted.
When sending files with ZMODEM, the + option commands the receiver
to append to a file already on the receiver's disk.
EXAMPLE: sz -+ ONAME=master.log *.log sends all .log files in the
current directory to be appended to master.log on the receiver's
computer.
a (ASCII) The a option applies to files received with XMODEM, YMODEM,
16
or ZMODEM protocol. It converts newlines not preceded by CR to
CR/LF pairs. NULL, RUBOUT, and all characters in each packet
beginning with Ctrl-Z are excluded. The a option is useful when
receiving text files without carriage returns directly from Unix
systems.
When sending with ZMODEM, the a option instructs the receiver to
convert text files to the conventions used in its operating
environment.
The a option does not apply to Kermit. Files transferred with the
a option cannot be processed with the ZMODEM r (recover/resume)
option.
EXAMPLE: rc -a program.c receives program.c and converts end of
lines to CR/LF.
b (Binary) With ZMODEM, inhibits the receiver from translating the
file contents. If either the ZMODEM sender or receiver specifies b
option, any contrary requests will be ignored.
EXAMPLE: sz -b program.exe
e Normally, ZMODEM senders escape XON, XOFF, Ctrl-P, CR-@-CR, and
Ctrl-X, and ZMODEM receivers ignore XON and XOFF. The e option
escape all control characters when sending files with the ZMODEM
protocol.
SEE ALSO: zmtxesc, zmrxesc string parameters
E With ZMODEM-90, force 8th bit encoding even if the transmission
medium appears to support 8 bits.[2]
f Send the full pathname as specified (exclusive of disk identifier)
when using a batch send command. Normally only the file name
portion (without any directory prefix) is transmitted. The f
option applies to batch file transmission with the kermit sb, sb,
send, and sz commands.
EXAMPLE: cd /src; sz -f robot/r2d2.h sends the file with the
pathname robot/r2d2.h.
EXAMPLE: sz -f /src/robot/vox/3tpi0.*
SEE ALSO: PREFIX=p flag for the sb and sz commands.
F Insert a pause after each transmitted data subpacket transmitted
with ZMODEM. This is useful in certain situations when
conventional flow control methods are unavailable, ineffective, or
17
unreasonably slow (i.e., "broken"). The length of pause is set by
the zmodem F numeric parameter.
EXAMPLE: sz -F honker.dat
SEE ALSO: zmodem F numeric parameter
g Given to the receiving program, the g option to the rb command
allows the sender and receiver to dispense with acknowledging each
transmitted packet when using YMODEM batch transfers. YMODEM-g
increases throughput when the transmitting medium itself (direct
connection, X.PC session, or error correcting modems) provides
error free transmission. The transmitting medium can use XOFF and
XON to enforce flow control.
If the transmitting medium does not enforce flow control,[3] the
user must insure the receiver is not overrun. ZCOMM on a PC or XT
accepts data at 9600 bps without flow control when the file is
being written to a hard disk or ramdisk, provided no memory resident
programs or special drivers hog CPU cycles.
If an error is detected when the g option is used, the transfer is
aborted.
EXAMPLE: rb -g
The g option may also be used with the rx command to receive files
from Qmodem's G protocol.
k Use 1024 byte (1K) packets with the sb and sx commands. The
default packet length is 128. This increases throughput when the
speed is high relative to the response times of the communications
channel and the computers. The k option is useful with 9600 or
19200 bps transfers with directly connected timesharing systems.
The k option may not work properly uploading to some systems,
particularly heavily loaded or poorly implemented timesharing
systems at high speeds. The k option is valid only when sending to
ZCOMM, Unix rb, or other compatible programs. If the file length
is not a multiple of 1024, the remainder of the file will be sent
with 128 byte blocks. This option does not affect Kermit
transfers.
EXAMPLE: sb -k *.c *.h
With the sz command, the k option forces an initial 1024 byte
subpacket length.
m (ZMODEM-90) Activate Moby Turbo(TM) for maximum throughput on
compressed files sent over completely transparent connections.
Moby Turbo can not be used with software flow control or over
networks that reserve control characters.
18
M Lock out Moby Turbo even if the other program has given the m
option. This is useful if the transmission path does not support
complete transparency.
n (ZMODEM) Each file is transferred if the corresponding destination
file does not exist, or if the source file is newer. The n option
can be given with either the sz or rz commands. This option is not
allowed if the receiver is Restricted.
EXAMPLE: sz -n *.* attempts to send all files in the current
directory. Only those files that do not exist in the destination
directory, and those for which the source is newer will be sent.
N (ZMODEM) Transfer the file if the corresponding destination file
does not exist, or if the source file is newer or longer. The N
option be used with the sz and rz commands. This option is not
allowed if the receiver is Restricted.
EXAMPLE: sz -N *.*
p (ZMODEM) Protect destination file; bypass this file if it already
exists on the destination system.
P (ZMODEM-90) When transferring files over 7 bit paths, pack 4 8-bit
bytes into 5 7-bit bytes for transmission instead of quoting the
8th bit. This increases transmission speed on compressed files.
q (Quiet) suppresses block by block status line update during Kermit
and X/YMODEM file transfers.
r (ZMODEM) Resume/Recover an interrupted file transfer with the
ZMODEM protocol. May be given with either the sz or rz commands.
The r option may be used to resume the transmission of a long file
after a disconnect or power loss, without having to start over at
the beginning of the file. The r option may also be used when the
source file grows from time to time and only the incremental
portion needs to be sent. The r option assumes that the contents
of the destination file are identical to the corresponding
beginning portion of the source file. The r option should not be
applied to a file that has been modified by the a option, or to a
file that has been edited on the destination system. This option
is not allowed if the receiver is Restricted.
EXAMPLE: sz -r hugefile.lst
19
rrr As above, but the files are compared by taking a 32 bit CRC on the
contents before deciding on whether to start a fresh transfer.
EXAMPLE: sz -rr maybenewer.lst
With the -rr option, all of the files are compared or transmitted
by default. The number of bytes used in the comparision may be
restricted by setting the zmodem R numeric parameter to a number
between 2048 and 32000 (1 billion on 32 bit flavors).
EXAMPLE: zmodem pR20000
s SlugBait modifies the logic of ZMODEM sending to detect and report
attempts at evading accountability for receiving files. Such
attempts are flagged with a Q status in the log of sent files.
SnailBait adds a slight delay to file transmission, and a transfer
that is cut off at the very end of file may very infrequently be
reported with Questionable instead of ERROR status.
S When sending file(s) with ZMODEM, interrogate the receiving prgram
for its serial number. S option terminates when a serial number is
received or when the call command is given. Receiving file(s) with
YMODEM or ZMODEM from programs providing a serial number also
provides the other program's serial number. The serial number
received is listed by the performance log.
t Enter the term function after file transfer(s) complete. The t
option should not be used in commands given from within the term
function, either directly or with soft key definitions.
u Unlink (remove, delete) the file after it has been sent with the sz
command.
v View the data being transmitted or received. Only correct data is
displayed. Viewing standard ASCII files does not interfere with
correct transmission at high speeds, although throughput may be
degraded.
The output may be redirected to a capture file or DOS device with
the > or >> command. Unless output is redirected, this option must
not be used when ZCOMM is in Host Operation.
NwN Use a window size of N bytes with the sz command, overriding the
zmodem w numeric parameter. If N is missing, use a ZMODEM window
size of 4096 bytes.
20
SEE ALSO: Flow Control Chapter 13, zmodem w numeric parameter
NWN Request the sending program to use a window size of N bytes,
overriding the sender's window size setting, 4096 bytes if N is
missing.
y Yes it is OK to replace a file already on disk when receiving a
file. If absent, the operator is given a choice of appending to
the current file (a), erasing it (y) or aborting (n). This option
is not allowed if ZCOMM is Restricted. When sending with ZMODEM,
commands the receiver to replace a file on its disk.
Y (ZMODEM) Transfer only those files for which a file with the same
pathname exists at the destination, overwriting the destination
files. The Y option may be followed by other ZMODEM options to
further qualify the selection of files to transfer. This option is
not allowed if ZCOMM is Restricted.
EXAMPLE: sz -Yn *.* If the source directory contains files A, B,
and C, each dated today, and the destination directory contains B
TzT Use T minutes behind GMT (Greenwich Mean Time) as the local
timezone instead of the z parameter value for the file(s)
transferred with this command.
EXAMPLE: sb -k -z300 ESTfile sends ESTfile corrected for creation
in Eastern Standard Time.
Z Transmit files with compression. The ZMODEM receiver must indicate
its ability to decompress received files for this option to take
effect.
When sending between Unix systems, files are compressed with 12 bit
Lempel-Ziv compression. Otherwise, packets are transmitted with
Run Length Encoding.
Over slow channels, compression increases the transmission speed of
compiler listings, screen dumps, etc. by up to 50 per cent. LZW
compression is more effective on more types of data than RLE
compression. Some files, including the Personal Computing Magazine
ASCII Test File, speed up by more than an order of magnitude with
either RLE or LZW compression. Heavily encrypted data and
compressed files, including ARC and ZOO archives, do not benefit
from ZMODEM compression.
The situation with fast compressed modems is more complex. The
benefits of ZMODEM compression will depend on the particular
application; try the transfers with and without ZMODEM compression
to determine the most efficient options.
21
─────────────────────────────────────────────────────
EXAMPLES OF FILE TRANSFER COMMANDS & SETUP PARAMETERS:
─────────────────────────────────────────────────────
dsz sz c:foo.arc (send 1 file with ZMODEM)
dsz sz -m c:*.zip (send all .ZIP files with MobyTurbo)
dsz sz f1.c f2.c f3.c (send 3 files with ZMODEM)
dsz sz c:foo.* b:*.c (send multiple files with ZMODEM)
dsz sz -Z *.lst (send text files with compression)
dsz sz -r bigone.arc (CRASH RECOVERY: resume interrupted transfer)
dsz rz -r (CRASH RECOVERY: resume interrupted transfer)
dsz rz -rr (CRASH RECOVERY with file comparison)
dsz handshake both sz yzmodem.arc (Hardware+Software handshake)
dsz sz -n *.* (send files that are newer or rx has no copy)
dsz sz -Yn *.* (Only send files that are newer than receiver's
copy)
(Do not send files that do not exist on
receiver's disk)
dsz rz C:/UPLOADS (receive files to specified directory #)
dsz port 2 speed 38400 handshake both restrict rz
(Restrict provides protection for BBS's)
dsz rz -y prog.arc (ZMODEM, single file pathname override)
dsz z pr1 rx foo.dat (XMODEM receive, remove file if error)
dsz pO60 ro foo.dat (XMODEM/OverThruster receive, GEnie MNP #)
DSZ LRC L-Y NEWPROG.ARC (generate lower case "rc -y" command)
dsz sz foo >debug.dmp (Debugging data dump)
dsz sz @C:/bbs/files.lst (Indirect file list)
22
──────────────────
Dsz Interrupt Keys:
──────────────────
Ctrl-Break Terminates the transfer in progress.
ALT-N Abruptly terminates (NUKES) the transfer in progress.
Ctrl-X Typing a dozen Ctrl-X characters to another ZMODEM program
terminates ZMODEM operations.
ALT-F Skips the current file in ZMODEM transfers.
ALT-B Cancels the current ZMODEM session.
─────────────────────
ENVIRONMENT VARIABLES:
─────────────────────
The following DOS environment variables may be set to modify DSZ operation.
DOS environment variables are set by giving a command to DOS.
EXAMPLE: set DSZPORT=2
These DOS "set" commands may be placed in your AUTOEXEC.BAT file or given just
before you run your communications program.
DIRRX (Registered copies only.) Specifies the directory to receive (download)
files. If the sting in DIRRX ends with "/", directory and/or disk
designators in the incoming pathname are stripped, and only the stem (name
and extension) is used. Otherwise, if an incoming file has an absolute
pathname, the incoming pathname is used.
EXAMPLE: set DIRRX=C:/rxdir/
dsz rz -r
EXAMPLE: set DIRRX=B:/
The DOS "set" command defining the receive directory may be placed in your
AUTOEXEC.BAT file. Make certain there is enough environment space to hold
this value. Confirm this by typing "set" to the DOS prompt and verifying
the DIRRX value is listed correctly.
DSZFILES May contain a list of up to 9999 pathnames to transmit, with entries
separated by spaces. If present, DSZFILES is used in place of a normal
command line list of files to send with the sb and sz commands.
EXAMPLE: C>set DSZFILES=file1 file2 file3 *.c
C>dsz port 2 handshake on sz -rr
In practice, this string would be built up by a calling program and passed
to DSZ with a "spawnvpe", "execvpe", or similar subroutine call.
23
SEE ALSO: Pathname list specification @C:files.lst
DSZLOG log file to receive entries for files sent and received. (Default
null). Sample entries:
Z 46532 38400 bps 3324 cps 0 errors 66 1024 DSZ.COM 1177
Z 124087 19200 bps 1880 cps 0 errors 6 1024 MXY.TMP 1177
Transfer times are based on the DOS time of day clock and have up to two
seconds' uncertainty. As with all protocol throughput reports generated
by Omen Technology programs (and contrary to the false claims of some
critics), DSZ's throughput figures for ZMODEM, Kermit, and True YMODEM(TM)
transfers do not take "credit" for pathname and/or protocol overhead
characters. DSZ's throughput reports do not include the time required to
send the pathname. This understates the true time required to transfer
files, but the time required to send the pathname often depends on the
alacrity of the operator, and thus does not always reflect the performance
of the protocol itself.
Transfers measuring less than one second are reported as having 9999
characters per second throughput.
The unlabeled numeric field after the error (retry) count is the number of
flow control stoppages encountered sending the file. This number gives an
indication of flow control restrictions (overloaded networks, etc.)
encountered during the transfer.
The last numeric field before the file name is the YMODEM block size or
ZMODEM subpacket length used for the last block in the file.
The last field is the serial number of the other program, or -1 if this
information is not available.
The code letter indicates the type of transfer, Z (ZMODEM), S (X/YMODEM),
R (X/YMODEM), E (error), or L (transfer terminated by loss of data
carrier).
WARNING: If DSZ encounters a loss of carrier or other fatal error
condition before a file COMMENCES transmission, a log entry may not be
made.
DSZOPT
(Registered copies only) String containing default options for DSZ file
transfers. Options are optional modifiers to the DSZ sz, rz, sx, rx, sb,
rb commands.
A T may be appended to the string to force DSZ to exit after it has
recognized a ZMODEM AutoDownload(Tm) request.
An 8g may be appended to the string to make BBS (ANSI) graphics the
default for DSZ's t command. The ability to preset these options is
especially helpful for controlling ZMODEM automatic downloads from DSZ's t
24
command.
EXAMPLE: C>set DSZOPT=r
Enables DSZ's Intelligent Crash Recovery(TM) as a default.
Let's say you wish ZMODEM crash recovery, and BBS "graphics" for the DSZ
term function:
C>set DSZOPT=r8g
WARNING: Do NOT include "ena" or any other commands in the DSZOPT string.
With the exception of the "8g" mode, only **options** may be placed in the
DSZOPT string! (Options are the letters that modify the sz, rz, sb, etc.
commands. In "rz -r", "r" is an option.)
MAXBYTES Maximum number of bytes allowed for transfer. If this number is
exceeded, DSZ skips the offending files (ZMODEM) or aborts remaining files
in the batch (YMODEM).
DSZPORT Default communications port override, default 1.
EXAMPLE: C>set DSZPORT=2
ZONE sets the z numeric parameter to the number of minutes the current local
time lags GMT time. PDT or MST corresponds to 420. PST corresponds to
480.
EXAMPLE:
C>set ZONE=420
──────────────────────────
1. IN CASE OF DIFFICULTY:
──────────────────────────
If you have difficulty getting DSZ to work, start with the following command
to DSZ, given directly from the DOS prompt, without running any TSR or other
COMM program:
dsz port 1 speed 2400 d t
Type it exactly as it appears above; do NOT use upper case.
(Change the port number and speed as necessary. Use only COM1 or COM2 for
testing.)
This connects you to the modem. Dial a bulletin board by typing AT commands
to the modem ("ATDP621-3746 <enter>") to make it dial the BBS. Log in as
usual. Then, request a ZMODEM download of a file you don't already have. The
file will download automatically, you don't have to do anything. This
procedure verifies the correct operation of DSZ.
25
────────────
1.1 LOCKUPS
────────────
1.1.1 Insufficient Memory
DSZ complains when it detects insufficient memory to operate. When calling
DSZ from another program, there may be ALMOST enough memory for proper
operation, but DSZ locks up during a transfer or the calling program freezes
after DSZ displays the "DSZ Finished" message.
Sometimes there is a message about insufficient memory, sometimes just a
lockup and no message. To verify this problem, call CHKDSK from within your
comms program (not from DOS!) by defining it as an external protocol. If you
use an interface program (Hotkeyz, Prodoor, etc.), you must call CHKDSK from
that program, as those programs also reduce the memory available to DSZ.
CHKDSK should report at least 64k free memory. If less memory is reported,
reduce the size of the COMMS program's capture buffer, or reboot the system
with fewer/smaller device drivers and TSR programs. Calling DSZ directly from
the comms program instead of from an interface also saves memory.
1.1.2 Environment TOO BIG
A large environment may cause DSZ.COM to lockup. The size of the environment
(the amount of text you get when you give the DOS "set" command) is subtracted
from the data space available to 8086 C programs. This can be a problem with
DSZ.COM, whose 8086 tiny model limits code, data, stack, and environment to 64
kb TOTAL. If DSZ.COM complains about the environment being too big, you
should correct the problem. Use DSZ.EXE (compiled with 8086 small model) to
alleviate this problem.
1.1.3 Bad COMM Port Configuration
DSZ is fastidious about which interrupt vectors it takes over. Unlike some
programs, DSZ uses only the correct interrupt vector for its interrupt service
routine. (This allows multitasking.)
DSZ obtains and releases this vector with standard DOS function calls. This
allows multi line operation under DESQview and other multitasking systems.
Incorrectly configured serial ports that work with programs that pig out both
IRQ3 and IRQ4 will lock up with DSZ. If DSZ locks up the machine as soon as
it tries to send or receive data, this is usually the fault. Make sure the
comm port is strapped correctly; COM1 uses IRQ4, COM2 uses IRQ3. DSZ will
lock up if the comm port is not properly set up.
In addition, DSZ will not work properly if two devices are connected to the
same IRQ line, even when some other programs (that don't use interrupts as
intensively) do work normally on the same machine.
26
COM3 and above are not widely standardized. If you have problems with COM3,
chances are your "COM3" is non standard.
1.1.4 No Carrier Detect
If you see a No Carrier Detect message, and you haven't lost the connection,
you need to give the d command:
dsz port 1 speed 2400 d t
Better yet, fix your modem cable or modem to allow proper operation of the
Carrier Detect signal (CD)!
Some BBS and/or "door" programs hang when the program (such as DSZ) they call
returns with a non 0 exit status. Please refer to the "EXIT STATUS" chapter
of the document for more information.
1.1.5 DOS 3.x
DOS 3.x systems may need to have a "STACKS = 8,256" line in CONFIG.SYS to
prevent antisocial behavior. This is required on the NEC Multispeed, or if
certain TSR's are used.
1.1.6 Perstor Controllers
Several reports have been received indicating Perstor disk controllers
interfere with data communications. Perstor is reportedly working on a fix.
1.1.7 IBM PS/2 Model 50Z
Early samples of this machine have a design error on the motherboard that
causes comms programs to lock up the machine. Replacing the motherboard with
a correctly functioning unit from current production corrects the problem.
The part number of the replacement PS2/50 Z motherboard is 35F5928.
(Information provided by John M. Choma 73047,3566) U.S. IBM has stonewalled on
this issue, but in December 1988 agreed to replace the defective motherboards
under warranty.
1.1.8 Brain Damaged UARTS
Omen Technology has received reports of problems with buggy 8250 type UART
integrated circuits in Leading Edge modem boards, serial port interfaces, and
computers. The defective chip logic affects high performance software.
Replacing the buggy chip with a newer chip (16450 or NS16550AN) corrects the
problem.
The UM82450 chip in the Zoom 2400HC also appears to cause problems.
The NS16550AN is a pin compatible plug in replacement for 8250 and 16450
serial chips. Omen Technology software enables the FIFO buffer in the
27
NS16550AN to prevents loss of data from poorly written device drivers, TSR
programs, etc.
The NS16550AN has better electrical characteristics than the older UART chips.
386 and fast 286 machines should use the NS16550AN for best results. Omen
Technology software has been written to allow time for the older UART chips to
operate. However, there is a limit to how much the software can rearrange chip
accesses without resorting to performance robbing wait loops. Some other
software is not as forgiving of slow chips.
Jameco Electronics at 415-592-8097 sells National NS16550AN chips mail order
(credit card) in small quantities. Another source is Arrow Electronics at
800-932-7769 (516-467-1000). Be sure to ask for the NS16550AN. It's
important to get the "AN" part, other versions won't do.
PC BRAND at 800-722-7263 (in Illinois 312-226-5200) is selling I/O cards in
which both UARTs are socketed, allowing them to be replaced by NS16550AN
devices. Shipping and handling is included in their $45 price. (From Roger
1.1.9 Hough)
1.1.10 Everex Internal Modems
Numerous reports have been received concerning difficulties with Everex modem
cards. Some of these cards contain buggy 8250 chips which are not up to the
demands of full duplex streaming protocols such as ZMODEM. Replacing the
buggy 8250 chip with a 16450 (or better yet NS16550AN) chip corrects these
problems.
1.1.11 Weird Iron
A few machines, some with V20 CPUs, don't like DSZ.COM. We have not been able
to repeat this; TeleGodzilla (using a V20) runs DSZ.COM without a hitch.
Switching to DSZ.EXE has cleared up the problems on other machines.
1.1.12 Will the real YMODEM please stand up?
Some XMODEM programs claiming to support YMODEM do not send or accept the
YMODEM pathname block. 1024 byte XMODEM is XMODEM-1k, not the YMODEM defined
by Ward Christensen in 1985 when he invented the term YMODEM. 1987 and later
versions of YMODEM.DOC remind the reader of the official YMODEM definition,
which has not changed since YMODEM's coinage in 1985.
1.1.13 286 and 386 Extended Memory
Virtual memory disk caches and ramdisks using 80286 or 80386 extended memory
require a kludge hardware reset of the CPU chip to return to the normal "real
mode" after accessing extended memory. This interference to the interrupt
response time causes lost characters on comm ports, and may be minimized by
specifying shorter memory transfers.
28
Switching to a National NS16550AN UART chip helps tremendously, allowing
transfers at 115200 bps instead of 9600 bps with a standard 8250. Please
refer to the subchapter on "Brain Damaged UARTs".
────────────────────
BACKGROUND OPERATION:
────────────────────
Three DESQview description files are provided to demonstrate background
operation with modest (66 kb window) memory requirements. DSZ uses tight
C/ASM code, table driven CRC generators, and buffered receive and transmit for
good performance in the background without hogging CPU cycles. On a QIC Labs
8 mHz PC-AT clone, DSZ can download files in the background (3 background
clock ticks, 9 foreground clock ticks) with a throughput better than 9600 bps.
2S Prompts for file name(s) and sends them with ZMODEM protocol. File: 2S-
PIF.DVP
2T Talks to the modem and allows manual YMODEM (F3) or automatic ZMODEM
downloads. File: 2T-PIF.DVP
2A Like 2T, but using Quarterdeck's dvansi.com memory resident ANSI CRT
device driver to process ANSI screen codes. File: 2A-PIF.DVP DS.BAT is
the batch file used by 2A.
These files are written for a port 2 local connection and \TMP directory, but
may be modified to suit your requirements using the DESQview CP command. The
W numeric allows DESQview to close the window after DSZ finishes, providing a
pleasant user interface.
Other DVPs, Scripts, and Batch files are available on the DESQView conference
on the Sound of Music as DVDSZ20Z.ARC.
Please consult the DESQview documentation for instructions on installation
procedure for the DVP files.
Operation at high speed (above 9600 bps) may require the DESQview "Optimize
communications" performance Advanced Setup option.
Newer versions of DESQview may require more "common memory" allocation (6-8 k
bytes) to operate with DSZ. Some versions of DESQview do not operate properly
with DSZ; DESQview 2.0 is known to work, and DESQview 2.25 is reported to have
fixed bugs in intermediate versions.
On 286 and 386 machines, some DESQview operations involve swapping memory
contents with buffers in extended memory. As with extended memory ramdisks
and disk caches, this causes errors with high speed communications. The
considerations discussed in the "286 and 386 Extended Memory" subchapter apply
here. Since this DESQview extended memory swapping is asynchronous with
respect to DSZ's file transfers, "handshake slow" doesn't help. The solution
is to force DESQview's memory swaps to use smaller blocks (with interrupts
allowed between blocks) and/or use NS16550AN chips for the serial interface.
29
When running a comm program under DESQview or any related multitasking
executive, DSZ must be called directly from the comm program, in the same
window. DO NOT open a separate window for DSZ unless you were about to power
down the computer anyway.
With some communications programs, you can make the call, log in, and then
exit (closing the window) without disconnecting the modem. At this time you
can fire up DSZ with the "t" command to allow YMODEM or ZMODEM downloads in a
small window.
Example File: 2A-PIF.DVP
Alternatively, you can start DSZ from the DOS prompt, then type "AT" commands
to the modem to call the bulletin board. DESQview's "learn" facility may be
helpful here.
───────
PROCOMM:
───────
DSZ may not operate properly when called from ProComm if ProComm has files
open at the time.
A number of reports have been received of problems running DSZ from ProComm
Plus because of insufficient memory. Please refer to the subchapter on
LOCKUPS.
When running under ProComm's Host mode, failure to use the DSZ CON command may
cause ProComm to lock up the computer, or at least interfere with file
transfers, etc.
EXAMPLE: DSZ CON sz %1
A number of third party programs have been developed to provide a congenial
interface to DSZ if you have enough memory to spare. The POE, PCALL, DSZ_ZAP,
and PROZ programs have been popular in interfacing DSZ to ProComm's editor
gateway. These programs are available on many bulletin boards.
Hint: the DOS PATH environment variable must include ProComm's directory to
allow POE to locate all the POE files,. The POE files should be stored in the
ProComm directory. Setting the "PROCOMM" environment variable is
insufficient.
───────────────────
2. ERROR MESSAGES:
───────────────────
COM2 1200 bps Carrier Detect enabled Handshake slow
Command line = (commands)
This is a normal message displayed to help resolve problems with incorrect
batch files. The port number, speed, carrier detect ("enabled" or "DISABLED")
and "handshake" indicate the selected mode of operation.
30
DSZ FINISHED! exit code = 0
This is DSZ's normal exit when at least one file has been transferred and no
unrecoverable errors have been detected. If an error such as a failed file
transfer had been detected, the exit code would be 1, or the value set in the
Q numeric parameter.
As the message implies, DSZ has done all of its processing, and has return the
communications port and vector to its original value before displaying this
message. If the computer locks up after this message is displayed, there's
something wrong with the program that called DSZ, not with DSZ itself.
Unknown Machine Type XX, 'a' parameter preset to 6000 indicates a ROM BIOS
that does not follow the IBM specification for identifying the machine type.
If your computer causes DSZ to display this message, you may set the a numeric
parameter described elsewhere in this document. This message is generated
before any commands are read, so do not be alarmed when you "discover" that
setting the a parameter doesn't make this message go away. The a parameter
does not affect ZMODEM transfers.
Please send us a postcard or letter indicating the reported hex value for
machine Type, name of the computer, and its speed so we can include that
machine type in a future release.
Need more memory to run DSZ or Abnormal program termination is displayed by
the TurboC startup routine if DSZ is run in too small a memory partition. If
you see this message, use a larger memory partition for DSZ or remove some
memory resident programs. This message may also appear if the calling program
fails to free memory before calling DSZ.
No Carrier Detect is displayed when DSZ recognizes a lack of carrier detect
signal from the modem. Most support calls concerning "No Carrier Detect" are
caused by the user failing to tell DSZ to use the correct port. DSZ does not
magically divine the COM port number; if the default COM1 is incorrect, DSZ
must be told what port to use with the port command or the DPORT environment
variable.
No Carrier Detect may also be caused by a line disconnect, defective cable, or
incorrect modem strapping. It may be disabled with the d command. Sometimes
this is caused by setting the B parameter to too large a value.
Garbage Count Exceeded Indicates ZMODEM has not detected a valid start of
header in a reasonable number of characters.
If DSZ becomes "stuck" on emitting this messages, it is possible the sending
program may not be able to recognize and act upon transmission requests (ZROPS
headers). The sending program should be corrected. In the meantime, setting
a ZMODEM packet length with the "zmodem pl4096" ("l" is the small letter l)
command will force the sender to wait for the receivers' progress reports.
Permission denied comes from the Microsoft C Library. This is caused by
attempts to modify a read only file or directory, or to create a file in a
nonexistent directory.
31
A furtive flashing appearance of XOFF or FLOW during ZMODEM or YMODEM-g file
sending signifies DSZ is responding to flow control restraint. This is normal
operation when buffered modems or packet switched networks are used. ZMODEM's
robustness and reliability allow creative users to transfer files over unusual
multiple computer lash-ups, causing modem data lights and computer status
displays to dance in unfamiliar rhythms.
Output FLow Control Restraint RELEASED Indcates DSZ has not received a
positive flow control signal (XON and/or CTS as specified by the handshake
command) within the timeout specified by the S numeric parameter. This
message may appear as the result of line noise. If it appears sonsistiently,
it may indicate improper flow control settings, defective modem and/or cable,
or (rarely) too small a value for the S numeric parameter.
Not allowed to overwrite %s By default, DSZ will not overwrite an existing
file. Use the -y or -n or -r option to overwrite/update existing files.
2.1 Got ZRPOS
Got ZRPOS indicates the receiving program has detected a transmission error
and has requested retransmission. In other words, ZMODEM is doing its job of
detecting and correcting missing and garbled data. If this happens more often
than observed line errors would indicate is reasonable, there may be a flow
control problem in one of four areas:
+ Between the sending program and its modem. If using an interface speed
higher than the transmission speed, or modem to modem error correction
(MNP, LAPB, PEP, etc.), check that the modem and the sending program are
configured for the same flow control methods. Omen Technology's software
is faster than most other programs, and may expose flow control problems
not seen with slower software.
+ Between the sending modem and the network. Correcting this requires
"handshake both" to allow the sending program to honor both hardware (CTS)
flow control from the modem and software flow control (XON/XOFF) from the
network.
+ Between parts of the network.
+ Between the receiving modem and the receiving program. This can happen at
high transmission speeds when the receiver has specified a large I/O
buffer size with the B numeric parameter.
Excessive interrupt latency from extended memory ramdisks or disk caches,
and poorly written hard disk drivers also wreak havoc on streaming
protocols but do not affect start-stop protocols (XMODEM, etc.). Problems
with extended memory disk caches may cause errors at regular intervals;
check the receiver's error messages.
To work around these problems, give the "handshake slow" command to the
receiver.
32
Byte NNNN retry M: <error message> These messages appear when the protocol has
detected an error and is attempting to retransmit the garbled data. These are
normal messages.
2.2 Serial Input Error: Line Status Register xx
Serial Input Error: Line Status Register HH indicates a slow device driver,
TSR program, or other software is disabling interrupts too long for the
program to accept incoming data, and some characters are lost. A slow
response to folow control also triggers this message.
The value of the line status register is displayed in HEX. The following
error conditions when present OR into the Line Status Register.
01 The Interrupt level circular buffer has been overrun. The remote did not
respond to 's XOFF or hardware flow control, and continued to send
characters after being told not to. This problem is alleviated by
correct modem flow control configuration.
02 An 02 value for the LSR indicates Data Overrun. "Data Overrun" means the
computer was not able to respond to an incoming character from the UART
(modem) in time to make room for the next incoming character. Data
Overruns are caused by poorly designed software (or ROM BIOS "firmware")
locking out interrupts for excessive periods. These lockouts prevent the
communications program from responding to the incoming characters quickly
enough.
To correct Data Overruns, correct the offending condition(s) to allow the
communications program to operate properly.
Common causes of excessively long interrupt lockouts ("critical code
regions") are disk drivers (BIOS), window managers, disk caches, TSR
programs, EGA/VGA board auto-select.
Some BIOS programs are written without regard to their effect on high
speed communications. Sometimes better versions of the offending BIOS
programs are made available if enough users complain about poor
performance.
Interrupt latency caused by EGA/VGA board auto-select can be often
corrected by disabling the board's Auto-Select.
Other chapters in this document give suggestions for working around
excessive interrupt latency, primarily the handshake slow command and use
of the NS16550AN UART chip. Please refer to the "Brain Damaged UARTS"
subchapter.
08 Framing Error generally caused by line noise or an incorrect transmission
speed ("baud rate") or format (number of bits). Most protocols require 8
bits no parity (-8n) for proper operation. This is set automatically by
Omen Technology programs, but other programs may not be so smart.
33
10 Break Interrupt generally caused by line noise or an incorrect
transmission speed ("baud rate") or format (number of bits).
18 Framing Error and Break Interrupt (see above) in combination.
This error may also be caused by defective 8250 UART chips. Certain
internal modem cards have slow 8250 chips that do not operate properly
with computers faster than 4.77 mHz. Replacing the 8250 with a NS16550AN
is recommended.
2.3 Out of Environment
Means there is not enough room in the program environment to accept more data.
DOS prints this message when it cannot allocate more memory to accommodate a
"set" command, such as "set dirrx=c:/downloads/".
Try moving the "set" commands to the batch file that calls your comms program,
or to your AUTOEXEC.BAT file.
To increase environment, use the /E switch. The default is 160 bytes.
An example for your CONFIG.SIS file: SHELL=C:COMMAND.COM/E:256
NOTE: Large environments may cause DSZ.COM to lockup. This is less of a
problem with DSZ.EXE.
2.4 SLOW TRANSFERS
Some users report slower than expected file transfers even when few or no
errors are reported. Some possible causes are:
If "handshake slow" is used, throughput may suffer. Try one of the other
solutions to the "Line Status Register = 02" error problem discussed above.
It may be possible to increase the modem's interface speed, say from 9600 to
19200 bps.
Bad phone lines will silently slow MNP modems, sometimes without any error
indications. Of the modems disconnect fairly often you should suspect
marginal phone line conditions that are begin "covered up" by the MNP.
The other ZMODEM may have a parameter or option is use that acts to slow the
transfer under certain conditions.
34
─────────────────────────────────────
JAN-22-1990: ZMODEM-90(TM) EXTENSIONS:
─────────────────────────────────────
Receiver specified window size: The -Wn option operates similarly to the -wn
option. The -Wn option is specified to the receiver, which sends this
information to the sender. Pro-YAM, ZCOMM and DSZ versions beginning with Jan
22 support this.
Specified extra escaped characters: The "zmtxesc" and "zmrxesc" allow extra
characters to be escaped when sending (zmtxesc) or receiving (zmrxesc).
Zmtxesc is effective sending to any ZMODEM program. The sz commands in Omen
products after Jan 22 1990 except for DSZ.COM recognize incoming "zmrxesc"
requests. TThe zmrxesc and zmtxesc string parameters consist of one or more
printing characters corresponding to the control characters to be escaped. To
escape NULL: set zmrxesc "@"
Since DSZ does not support string parameters, a -Q<string> option unique to
DSZ performs the same function as zmrxesc and zmtxesc. If the Q<string>
option is used in DSZOPT, it must be last. To escape NULL: dsz sz -Q@
file.ext
MobyTurbo(Tm):
MobyTurbo optimizes throughput on ZIP, ARC, and similar files over paths that
support YMODEM-g (or would except for random errors). MobyTurbo cannot be
used with most types of software flow control (or "handshake both").
Activate MobyTurbo with the -m option to one or more of: sz, rz, or adlopts.
LOCK OUT MobyTurbo with the -M option. -M is effective until the next "call"
command. Use -M in situations when the sender has -m turned on and YAM's
check fails to discover path conditions that preclude MobyTurbo.
──────────────────────
MAJOR REVISION HISTORY:
──────────────────────
The ZMODEM "Slow Send" mode inserts a brief pause after each subpacket when
invoked with the -F option, or automatically when the "sz" command detects
failing flow control. The zmodem F numeric parameter (default 1) sets the
pause in tenths of seconds.
4-24-89 The -rr option has been improved. Long file compares are done in two
stages to save time when the first portions do not match. Diagnostic code and
undocumented commands have been removed to decrease the program size.
DSZ now defaults to "handshake both" if the speed is greater than 2400 and the
clear to send signal is high when DSZ selects the comm port (was "handshake
on" in 3-19).
The 4-18 version introduces ZMODEM variable length headers of up to 16 bytes
35
information field instead of the previous fixed 4. Selection of variable
length header capability is automatic and downward compatible. Variable
length headers allow future extensions to ZMODEM's capabilities.
ZMODEM Crash Recovery now understands the -rr option to compare the CRC-32 of
the assumed common file segment before continuing an incomplete file transfer.
The "zmodem R" numeric parameter may be set to limit the number of bytes in
the files that are compared; the default R value of 0 allows all of the file
to be compared, an R value up to 32000 (up to 2 billion on 32 bit flavors)
limits the comparison to the first R bytes of the two files. The ZMODEM -rr
option is supported by Omen Tech versions April 18 1989 and later.
When ZMODEM Crash Recovery detects incompatible source and destination file
contents, the destination file is now truncated to zero length before
proceeding with the transfer. Crash Recovery requires the destination file to
be no longer than the source file.
Error reporting on unregistered copies has been enhanced to point the user to
solutions described in the relevant chapters in DSZ.DOC.
3-18-89 In order to work around a bug in the new TCOMM bbs, DSZ now defaults
to "handshake on" if the speed is greater than 2400 and the clear to send
signal is high when DSZ selects the comm port.
The "o" command has been added to disconnect the modem after a terminal
session: "dsz t o" disconnects the modem when the terminal session is
completed.
The "P" (capital P) numeric parameter (q.v.) has been added to display and
control the UART fifo on some clone chips.
Handling of the Ctrl-Break vector has been changed so an untimely keyboarded
Ctrl-C or Ctrl-Break will not hang DOS.
2-15-89 DIRRX is enabled for BBS registrations (8xxx numbers). Logic has
been added to simulate transmit interrupts on chips that have problems in this
area. The "A" command does not require registration. An interaction between
ONAME= or PREFIX= and the file count display has been removed. Time/date
conversion routines have been enhanced to deal with files with missing dates.
The "v" command has been added to allow bbs programs to interrogate DSZ's
serial number.
2-06-89 A spurious error message at the completion of YMODEM downloads with a
download directory specified on the command line has been eliminated.
2-05-89 DSZ now returns a non 0 status unless at least one file has been
transferred. An inappropriate pathname/disk specifier check on specified
download directories has been removed.
Previous versions:
Added the "A" command to prevent pcAnywhere host mode from locking up DSZ.
SlugBait logic has been simplified, reporting any failed file transfer where
any of the last 1K of the file was sent with Q status.
36
Introduced ZMODEM RLE compression with the -Z option. (registered DSZ copies
also accept "Z" in the DSZOPT environment variable.) ZMODEM RLE compression
packs runs of the same character in two or three character sequences.
Compression is useful for screen dumps, uncompressed workspaces, compiler
listings, and other files rich with strings of repeated characters, but not
.ARC, .ZOO and other compressed files. Compression percentages range from -1
per cent for already compressed files to more than 1000 per cent (10x
speedup!) for the Personal Computing text file benchmark(!). When sending to
programs that do not support ZMODEM compression, the -Z option is ignored.
The -Z option is effective when specified to the sending program only.
Good news for tired frog stompers! The ZMODEM rz/sz programs are now
available in a VMS C flavor. The VAX/VMS source files are contained in the
RZSZ.ARC (RZSZ.ZOO) archive file.
"Handshake slow" has been added to disable the RTS signal to the modem while
writing to disk, even if the interrupt buffer is not chock full of bytes.
This should help systems with excessive interrupt latency on disk writes.
Setting the v (verbose) parameter to 1 or greater causes serialized copies to
ring the bell when a transfer is done.
DSZ.DOC has been extensively rewritten and reorganized. DSZ now supports the
advanced buffering of the National NS16550AN and Intel 82510 serial interface
devices. Please refer to the subchapter on "Brain Damaged UARTs".
37
38